﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using TP2.Persistencia;
//using PersistenciaXml;
using TP2.Lib;//temporal

namespace EjemploPruebaPersistencia
{
    class Program
    {
        static void Main(string[] args)
        {
            
            /*------Pruebas de serializacion individuales---*/
            
            //Persona pablo = new Persona();
            //pablo.Nombre = "Pablo";
            //pablo.Apellido = "Suarez";
            //pablo.Dni = 22001122;
            ////----- Serializacion de pablo como Persona -> OK

            //Alumno pablo2 = new Alumno();
            //pablo2.Nombre = "Pablo";
            //pablo2.Apellido = "Suarez";
            //pablo2.Dni = 22001122;
            //pablo2.Padron = 86704;
            //----- Serializacion de pablo como Alumno heredando de Persona -> OK

            
            double[] posI = new double[3] { 400, 300, 0 };
            double[] posF = new double[3] { 800, 300, 0 };
            int[] dim = new int[3] { 800, 600, 0 };

            LanzaLaser lanzaLaser = new LanzaLaser(posI, dim);
            //----- Serializacion de lanzaLaser incluso la posicion como vector de dobles y la dim comno vector de ints -> OK
            
            MovimientoLineal mov1 = new MovimientoLineal(posI, posF, 2);
            //----- Serializacion de movimiento -> OK


            TanqueEnergia tanque = new TanqueEnergia(posI,dim);
            //----- Serializacion de TanqueDeEnergia -> OK


            AvionJugador algo42 = new AvionJugador(posI, dim);
            //----- Serializacion de Algo42 SIN EL NEW DE LAS ARMAS -> OK ; FALLA AL HACER LOS NEW DE LAS ARMAS!!

            //TP2.Persistencia.PersistenciaXml.GuardarEstadoDeLaMision(algo42);


           /*------------------- PRUEBAS DE SERIALIZACION BINARIA ---------------------------*/

            Mision mision = new Mision(dim);
            mision.AgregarElementosAliados(algo42);
            mision.AgregarFlotaEnemiga(new FlotaAvionetas(posI,15,dim));
            mision.AgregarFlotaEnemiga(new FlotaBombarderos(posI, 15, mision.ElementosAliados, dim));
            mision.AgregarFlotaEnemiga(new FlotaCazas(posI, 15, dim));
            mision.AgregarElementosEstaticos(new TanqueEnergia(posI, dim));
            mision.AgregarElementosEstaticos(new LanzaCohete(posI, dim));
            mision.AgregarElementosEstaticos(new LanzaLaser(posI, dim));

            PersistenciaBinaria.GuardarEstadoDeLaMision(mision);
            PersistenciaBinaria.RecuperarEstadoMision();
            
        }
    }
}
